//Servidor.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
public class Servidor implements ActionListener
{
	JFrame frameServidor;
	JPanel panelServidor;
	JLabel lblNombreArchivo;
	JTextField txtNombreArchivo;
	JButton btnEscuchar;
	ServerSocket srvSocket;
	static final int PUERTO = 5000;
	boolean escuchando = false;
	public Servidor()
	{
		frameServidor = new JFrame("Servidor de Archivos");
		panelServidor = new JPanel();
		lblNombreArchivo = new JLabel("Nombre del Archivo:");
		txtNombreArchivo = new JTextField(40);
		btnEscuchar = new JButton("Escuchar");
		btnEscuchar.addActionListener(this);
		JPanel panelNorte = new JPanel();
		JPanel panelSur = new JPanel();
		panelNorte.setLayout(new FlowLayout());
		panelNorte.add(lblNombreArchivo);
		panelNorte.add(txtNombreArchivo);
		panelSur.setLayout(new FlowLayout());
		panelSur.add(btnEscuchar);
		panelServidor.setLayout(new BorderLayout());
		panelServidor.add(panelNorte, BorderLayout.NORTH);
		panelServidor.add(panelSur, BorderLayout.SOUTH);
		frameServidor.getContentPane().add(panelServidor);
		frameServidor.pack();
		frameServidor.setVisible(true);
		frameServidor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	public void actionPerformed(ActionEvent e)
	{
		//Aqui llamaremos al hilo de aceptaciones
		try{
			if(!escuchando)
			{
				srvSocket = new ServerSocket(PUERTO);
				System.out.println("Servidor activo en el puerto "+ PUERTO);
				new HiloSolicitud(srvSocket, txtNombreArchivo.getText());
				btnEscuchar.setText("Terminar");
				escuchando = true;
			}
			else{
				srvSocket.close();
				btnEscuchar.setText("Escuchar");
				escuchando = false;
			}
		}
		catch(Exception ex)
		{
			System.out.println(ex.getMessage());
		}
	}
	public static void main(String[] args)
	{
		new Servidor();
	}
}